/*
 This file 'zoom' is part of Firebird Integrated Solution 1.0

 Copyright (c) 2015 Lincong

 Contact:  
 Email: lincong1987@gmail.com

 QQ: 159257119

 See Usage at http://www.jplatformx.com/firebird

 Create date: 2015-05-06 21:47
 */

define(function (require,
				 exports, module) {

	// var swfobject = require("./swfobject");

	var _zoom_dia = null;

	/**
	 *  一个从QQ空间提取出来的功能，进行了二次包装
	 *  用于判断页面是否处于缩放状态中，并给予提示
	 *  可在浏览页时按住ctrl+鼠标滚轮进行测试预览
	 */
	var zoom = {};

	/*
	 **  初始化
	 **  其实也不用初始化，可以直接把object代码写在页面上
	 **  需要注意的是onchange参数，调用的是FBOS.zoom.check方法
	 */
	zoom.init = function () {
		//$('body').append('<div id="zoombox"></div>');
		/*
		 **  使用SWFObject.js插入flash
		 **  http://www.cnblogs.com/wuxinxi007/archive/2009/10/27/1590709.html
		 */
		// swfobject.embedSWF(fb.resolve("_fbClassic_/img/zoom/zoom.swf").replace(/\.swf(.*)/, ".swf") + '?onchange=firebird.zoom.check', 'zoombox', '500', '400', '6.0.0', 'expressInstall.swf', '',
		// 	{
		// 		allowScriptAccess: 'always',
		// 		wmode: 'transparent',
		// 		scale: 'noScale'
		// 	},
		// 	{
		// 		id: 'accessory_zoom',
		// 		name: 'zoom_detect'
		// 	});

		//$("#J_zoom_tip>.ui-zoom-tip-close").on("click", function (e) {
		//	zoom.close();
		//});

		//detectZoom()


	};

	function detectZoom() {
		var ratio = 0,
			screen = window.screen,
			ua = navigator.userAgent.toLowerCase();

		if (window.devicePixelRatio !== undefined) {
			ratio = window.devicePixelRatio;
		}
		else if (~ua.indexOf('msie')) {
			if (screen.deviceXDPI && screen.logicalXDPI) {
				ratio = screen.deviceXDPI / screen.logicalXDPI;
			}
		}
		else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {
			ratio = window.outerWidth / window.innerWidth;
		}

		if (ratio) {
			ratio = Math.round(ratio * 100);
		}

		if (ratio !== 100) {
			if (ratio >= 95 && ratio <= 105) {
				ratio = 100;
			}
		}

		if (ratio !== 100) {
			//var html = '<div class="gb-hintbar" id="gb-hintbar">   <div class="inner">       <div class="hintbar-txt">您的浏览器目前处于<span id="hintbar-txt">缩放</span>状态，会导致页面显示不正常，您可以键盘按"ctrl+数字0"组合键恢复初始状态。</div>    </div>    <a title="点击退出" id="deleteHintbar" class="text-close" href="javascript:;" onclick="deleteHintbar()">×</a></div>';
			//dom.before(html);

			_zoom_dia && _zoom_dia.remove();
			_zoom_dia = $.dialog.warn('您的浏览器目前处于' + m + '状态，会导致显示不正常，<br>您可以键盘按<b>“ Ctrl + 数字0 ”</b>组合键恢复初始状态！', function () {

			}, function () {

			});
			$('#J_zoom_tip').show().find('.ui-zoom-tip-text').text('您的浏览器目前处于' + m + '状态，会导致显示不正常，您可以键盘按“ctrl+数字0”组合键恢复初始状态！');

		} else {
			_zoom_dia && _zoom_dia.remove();
		}

	}


	firebird.zoom = {};

	/*
	 **  为什么会有个参数o？其实我也不知道
	 **  我只知道o.scale的值是数字，当o.scale大于1时，页面处于放大状态，反之则为缩小状态
	 */
	firebird.zoom.check = function (o) {
		var s = o.scale, m = s > 1 ? '放大' : '缩小';
		if (s != 1) {
			zoomlevel = s;
			_zoom_dia && _zoom_dia.remove();
			_zoom_dia = $.dialog.warn('您的浏览器目前处于' + m + '状态，会导致显示不正常，<br>您可以键盘按<b>“ Ctrl + 数字0 ”</b>组合键恢复初始状态！', function () {

			}, function () {

			});
			$('#J_zoom_tip').show().find('.ui-zoom-tip-text').text('您的浏览器目前处于' + m + '状态，会导致显示不正常，您可以键盘按“ctrl+数字0”组合键恢复初始状态！');
		} else {
			if (s != zoomlevel) {
				//$('#J_zoom_tip').fadeOut();
				_zoom_dia && _zoom_dia.remove();
			}
		}
	};

	/*
	 **  关闭，其实是删除，如果想做关闭，把代码改成hide()即可
	 */
	zoom.close = function () {
		//$('#J_zoom_tip').fadeOut();
	};

	module.exports = zoom;
});